package com.cloudbroker.bcs.platform.dav.bizapi.t2service.business;

import com.cloudbroker.bcs.common.entity.HSBCPSBackNumVO;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew.IFSDavCustomerFuncIds;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.ListQueryVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.wechat.vo.PayCallback;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface FansT2BizService {
    
    /**
     * 5071101获取微信用户信息
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USERID_GET, desc = "获取用户ID")
    public UserIdGetBackForm funcUseridGet(@ServiceParam("param") UserIdGetForm param);
    
    /**
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_CUSTOMER_LOGOUT, desc = "粉丝登出")
    public HSBCPSBackVO funcCustomerLogout(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * 5071103 查询粉丝信息
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USER_INFO_QRY, desc = "查询粉丝信息")
    public UserInfoBackForm funcUserInfoQry(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * 5071104获取用户金币数
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USER_AMOUNT_QRY, desc = "获取用户金币数")
    public HSBCPSBackNumVO funcUserAmountQry(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * 5071105 查询粉丝未读消息数
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_NOREAD_NOTICE_QRY, desc = "查询粉丝未读消息数")
    public HSBCPSBackNumVO funcNoreadNoticeQry(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * 5071106 查询粉丝提问数
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_QUESTION_NUM_QRY, desc = "查询粉丝提问数")
    public HSBCPSBackNumVO funcQuestionNumQry(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * 粉丝昵称修改
     * @param param
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavCustomerFuncIds.FUNC_UPDATE_USER_NAME, desc = "粉丝昵称修改")
    public HSBCPSBackVO funcUpdateUserName(@ServiceParam("param") UpdateUserNameForm param);
    
    /**
     * 粉丝头像修改
     * @param param
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavCustomerFuncIds.FUNC_UPDATE_USER_AVATAR, desc = "粉丝头像修改")
    public HSBCPSBackVO funcUpdateUserAvatar(@ServiceParam("param") UpdateUserAvatarForm param);
    
    /**
     * 5071108 粉丝充值
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USER_RECHARGE, desc = "粉丝充值")
    public HSBCPSBackVO funcUserRecharge(@ServiceParam("param") PayCallback param);
    
    /**
     * 5071110 粉丝充值明细
     * @param param
     * @return
     */
    /*
    @Service(functionId = "5071110", desc = "粉丝充值明细")
    public RechargeDetailBackList funcRechargeDetailQry(@ServiceParam("param") RechargeDetailQryForm param);*/
    
    /**
     * 5071109 粉丝明细
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_DETAIL_QRY, desc = "粉丝明细")
    public ConsumeDetailBackList funcConsumeDetailQry(@ServiceParam("param") ConsumeDetailQryForm param);
    
    /**
     * 5071111 提建议
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_SUGGESTION_ADD, desc = "提建议")
    public HSBCPSBackVO funcSuggestionAdd(@ServiceParam("param") SuggestionAddForm param);
    
    /**
     * 5071112 获取通知
     * @param param
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ROLL_NOTICE_LIST, desc = "获取通知")
    public NoticeQryBackList funcNoticeListQry(@ServiceParam("param") NoticeForm param);
    
    /**
     * 粉丝手机号登录
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_MOBILE_LOGIN, desc = "粉丝手机号登录")
    public UserIdGetBackForm funcMobileLogin(MobileLoginForm form);
    
    /**
     * 用户信息完善登录
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USER_INFO_COMPLET, desc = "用户信息完善登录")
    public UserIdGetBackForm funcUserInfoComplet(UserInfoCompletForm form);
    
    /**
     * 验证邀请码
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_CHECK_INVITATION_CODE, desc = "验证邀请码")
    public HSBCPSBackVO funcCheckInvitationCode(InvitationCodeForm form);
    
    /**
     * fans获取在线人数
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_CHATROOM_ONLINENUM_BY_FANS, desc = "fans获取在线人数")
    public OnlineNumResultByFans funcChatRoomOnlineNumByFans(HSBCPSVO form);
    
    /**
     * 粉丝加金币专用接口
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_RECHARGE, desc = "粉丝加金币专用接口")
    public HSBCPSBackVO funcFansRecharge(HSBCPSVO form);
    
    /**
     * 东北证券国庆活动加金币
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_ACTIVITY_RECHARGE, desc = "东北证券国庆活动加金币")
    public HSBCPSBackVO funcFansActivityRecharge(FansFundForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USERID_GET_BY_TENANT, desc = "多投顾判断用户是否登录")
    public UserIdGetBackForm funcUseridGetByTenant(UserIdGetByTenantForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_MOBILE_LOGIN_BY_TENANT, desc = "多投顾手机登录")
    public UserIdGetBackForm funcMobileLoginByTenant(MobileLoginByTenantForm form);

    @Service(functionId = IFSDavCustomerFuncIds.FUNC_IS_CAPITAL_ACCOUNT, desc = "是否是资金账号")
    public CustomerAccountTypeBack funcIsCapitalAccount(HSBCPSVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_USER_INFO_COMPLET_BY_TENANT, desc = "多投顾用户完善信息登录")
    public UserIdGetBackForm funcUserInfoCompletByTenant(UserInfoCompletByTenantForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_FOLLOW_BROKER, desc = "粉丝关注大V")
    public HSBCPSBackVO funcFansFollowBroker(FollowBrokerForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_CANCEL_FOLLOW_BROKER, desc = "粉丝取消关注大V")
    public HSBCPSBackVO funcFansCancelFollowBroker(FollowBrokerForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_CLICK_BROKER, desc = "粉丝进入大V页面")
    public FollowBrokerResult funcFansClickBroker(FollowBrokerForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_LIST_BY_TENANT, desc = "多投顾列表")
    public BrokerListResult funcBrokerListByTenant(BrokerListTenant form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_LIGHT_ACCESS_TOKEN, desc = "light的access_token")
    public AccessTokenForm funcGetLightAccessToken(OpenIDForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_GUEST_TOKEN, desc = "获取访客token")
    public GuestResultData funcGuestToken(GuestTokenForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_APP_REG_LOGIN, desc = "三方注册")
    public FansAppRegLoginBackData funcFansAppRegLogin(FansAppRegLoginForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_POINT_RECHARGE, desc = "粉丝积分新增")
    public HSBCPSBackVO funcFansPointRecharge(FansPointForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_POINT_CONSUME, desc = "粉丝积分消费")
    public HSBCPSBackVO funcFansPointConsume(FansPointForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_POINT_QUERY_LIST, desc = "粉丝积分流水查询")
    public FansPointBackList funcFansPointQueryList(FansQueryForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_POINT_QUERY, desc = "粉丝积分查询")
    public FansPointBackForm funcFansPointQuery(FansBalanceForm form);

    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_POINT_QUERY_LOGIN, desc = "粉丝登录积分查询")
    public FansPointBackForm funcFansPointQueryLogin(HSBCPSVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_POINT_URL, desc = "粉丝积分入口URL地址")
    public FansPointUrlBackForm funcFansPointUrl(HSBCPSVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_BROKER_DROPDOWN_LIST_BY_TENANT, desc = "投顾下拉列表")
    public BrokerDropdownList funcBrokerDropdownListByTenant(ListQueryVO form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_ACTION_LOG, desc = "操作行为记录")
    public HSBCPSBackVO funcActionLog(ActionLogForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_GET_BROKERINFO_BY_USERID, desc = "根据用户中心ID获取投顾信息")
    public BrokerInfoByUserIdBack funcGetBrokerInfoByUserId(BrokerInfoByUserIdForm form);
    
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_SURVEY_STATUS_LIST, desc = "调研IDs支付状态查询")
    public SurveyStatusList funcSurveyStatusList(SurveyStatusListForm form);
    
    /**
     * 粉丝密码登录
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_PASSWORD_LOGIN, desc = "粉丝密码登录")
    public UserIdGetBackForm funcPasswordLogin(PasswordLoginForm form);
    
    /**
     * 多投顾粉丝密码登录
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_PASSWORD_LOGIN_BY_TENANT, desc = "多投顾粉丝密码登录")
    public UserIdGetBackForm funcPasswordLoginByTenant(PasswordLoginByTenantForm form);
    
    /**
     * 粉丝密码重置
     * @param form
     * @return
     */
    @Service(functionId = IFSDavCustomerFuncIds.FUNC_FANS_PASSWORD_RESET, desc = "粉丝密码重置")
    public HSBCPSBackVO funcFansResetPassword(ResetPasswordForm form);

}
